package com.stark.commons.spring.web.boot.properties;

import org.springframework.boot.context.properties.ConfigurationProperties;

import lombok.Data;

/**
 * web 配置项。
 * @author Ben
 * @since 1.0.0
 * @version 1.0.0
 */
@ConfigurationProperties("web")
@Data
public class WebProperties {
	
	/** 响应标准时间，单位毫秒 */
	private long monitorStandard = 3000;
	
	/** 开启安全拦截（防止 SQL 注入、 XSS 攻击等），默认 false */
	private boolean securityCheck;
	
	/** 跨域配置项 */
	private CorsProperties cors = new CorsProperties();
	
	/**
	 * 跨域配置项。
	 */
	@Data
	public static class CorsProperties {
		
		/** 是否允许跨域，默认false */
		private boolean enabled = false;
		
		/** 允许的请求路径，默认 '/**' */
		private String pathPattern = "/**";
		
		/** 允许的域名，默认 '*' */
		private String allowedOrigins = "*";
		
		/** 允许的请求方法，默认 '*' */
		private String allowedMethods = "*";
		
		/** 允许的请求头，默认 '*' */
		private String allowedHeaders = "*";
		
		/** 是否允许发送Cookie，默认false */
		private boolean allowCredentials = false;
		
		/** 允许客户端缓存响应头有效时间，单位秒，默认 1800 */
		private long maxAge = 1800;

	}

}
